package com.example.demo3.Timer;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.TimerTask;

public class TimeTask extends TimerTask {
    // 高考开始时间
    private LocalDateTime startTime;

    // 构造器,对高考的开始时间进行初始化
    public TimeTask() {
        String s = "2025-06-07 09:00:00";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        startTime = LocalDateTime.parse(s, dtf);

        System.out.println("\t\t\t2025高考倒计时");
        System.out.println("2025高考倒计时：2025年6月7日 星期六");
        System.out.println("现在距离2025年高考还有：");
    }

    // 每一秒执行一次该方法
    @Override
    public void run() {
        // 1.获取当前时间
        LocalDateTime now = LocalDateTime.now();
        // 2.计算当前时间和高考开始时间的时间差
        // Duration的作用计算两个时间对象相差的天数,小时数,分数,秒数,纳秒数
        Duration duration = Duration.between(startTime, now);

        // 默认情况下返回的是没用去除完整天数后的小时数
        // duration.toDays(): 总天数
        // duration.toHoursPart(): 去除完整天数后的剩余小时数
        // duration.toMinutesPart(): 去除完整天数和小时数后的剩余分钟数
        // duration.toSecondsPart(): 去除完整天数、小时数和分钟数后的剩余秒数
        System.out.println("距离高考还有" + duration.toDays() + "天" + duration.toHoursPart() + "小时"
                + duration.toMinutesPart() + "分钟" + duration.toSecondsPart() + "秒");
    }
}
